package com.etime.shycourse.services.ad.interfaces;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.etime.shycourse.config.StatisticsMessage;
import com.etime.shycourse.dto.AdLogDto;
import com.etime.shycourse.pojo.AdLog;
import com.etime.shycourse.pojo.Course;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 广告投放管理service层接口
 */
public interface AdLogService {
    /**
     * 分页查询广告列表
     * @param adLogDto 查询条件参数
     * @param pageNum 查询第几页
     * @param pageSize 每页查询多少数据
     * @return 分页结果对象
     */
    Page<AdLogDto> selectAdLogPage(AdLogDto adLogDto, Long pageNum, Long pageSize);

    /**
     * 根据广告位限定的课程类型分页查询匹配的课程
     * @param placeCourseTypeId 广告位限定课程类型id
     * @param pageNum 查询第几页
     * @param pageSize 每页查询多少数据
     * @param coursetitle 根据课程标题查找
     * @return 分页结果对象
     */
    Page<Course> selectCourseByPlaceCourseTypeId(Long placeCourseTypeId,String coursetitle,Long pageNum,Long pageSize);

    /**
     * 根据广告位统计已投放和等待投放的广告在近一个月内的每天的个数
     * @param placeId
     * @return
     */
    List<StatisticsMessage> statisticsAdLogByPlaceId(Long placeId);

    /**
     * 添加广告投放记录
     * @param adLog
     * @return
     */
    Integer addAdLog(AdLog adLog);

    /**
     * 根据广告id查询广告
     * @param adid
     * @return
     */
    AdLog selectById(Long adid);

    /**
     * 根据id修改广告记录
     * @param adLog
     * @return
     */
    Integer updateAdLog(AdLog adLog);


}
